This paper studies the preemption between programs running in different virtual machines on the same computer.\nOne of the current monitoring methods consist of updating the average steal time through collaboration with the\nhypervisor. However, the average is insufficient to diagnose abnormal latencies in time-sensitive applications.\nMoreover, the added latency is not directly visible from the virtual machine point of view. The main challenge is to\nrecover the cause of preemption of a task running in a virtual machine, whether it is a task on the host computer or in\nanother virtual machine.\nWe propose a new method to study thread preemption crossing virtual machines boundaries using kernel tracing.\nThe host computer and each monitored virtual machine are traced simultaneously. We developed an efficient and\nportable trace synchronization method, which is required to account for time offset and drift that occur within each\nvirtual machine. We then devised an algorithm to recover the root cause of preemption between threads at every\nlevel. The algorithm successfully detected interactions between multiple competing threads in distinct virtual\nmachines on a multi-core machine.
Loading....